perm filename PLNR.ADD[P,JRA] blob sn#080630 filedate 1974-01-03 generic text, type T, neo UTF8
00050	(THVSETQ (THV BT)NIL)
00060	(THVSETQ(THV TXV)NIL)
00070	
00080	
00100	(DEFPROP INCGCTR
00200	   (LAMBDA(B)
00300	      (PROG ()
00400		(COND((AND(EQ @THCONSE(CAR B))(THV WF))
00500		      (THSETQ(THV GCTR)(ADD1(THV GCTR)))))
00600		(RETURN T)  ))
00700	EXPR)
00800	
00900	
01000	(DEFPROP TRACEBIND
01100	   (LAMBDA(TX TY)
01200	      (PROG(BX BY TXX TTL)
01219		(COND((NOT(AND(THV WF)BTSW(THV TXV)))(RETURN NIL)))
01225		(COND((THVAR(CAR(THV TXV)))(SETQ TXX(CAR(THV TXV))))
01230		     (T(SETQ TXX TX)))
01400		(COND((THVAR TY)(SETQ BY(CADR(THGAL TY THALIST)))))
01500		(COND((THVAR TXX)(SETQ BX(CADR(THGAL TXX THOLIST)))))
01600		(COND(BY(GO TR5))
01700		     ((EQ BX @THUNASSIGNED)(GO TR3))
01800		     (T(GO TR6)))
01900	TR3	(SETQ TTL(FINDTL(LIST(CADR TXX)(THV LCTR))T(THV BT)))
02000		(COND(TTL(THSETQ(THV BT)(CONS(CONS(LIST(LIST(CADR TXX)(THV LCTR))TY)TTL)(THV BT))))
02050		     (T(GO TR6)))
02100		(SETQ TTL(FINDTL TY NIL(THV BT)))
02200		(COND(TTL(THSETQ(THV BT)(CONS(CONS(LIST(LIST(CADR TXX)(THV LCTR))TY)TTL)(THV BT))))
02300		     (T(THSETQ(THV BT)(CONS(LIST(LIST(LIST(CADR TXX)(THV LCTR))TY))(THV BT)))))
02400		(GO TR6)
02500	TR5	(COND((NOT(EQ BY @THUNASSIGNED))(GO TR6))
02600		     ((NOT BX)(GO TR4))
02700		     ((EQ BX @THUNASSIGNED)(GO TR2)) )
02800	TR1	(SETQ TTL(FINDTL(LIST(CADR TXX)(NTHV @LCTR 1 THALIST))T(THV BT)))
02900		(COND(TTL(THSETQ(THV BT)(CONS(APPEND(LIST(LIST(LIST(CADR TY)(ADD1(THV GCTR)))BX)
03000							 (LIST(LIST(CADR TY)(ADD1(THV GCTR)))(LIST(CADR TXX)(NTHV @LCTR 1 THALIST))))
03100						     TTL)(THV BT) )))
03200		     (T(THSETQ(THV BT)(CONS(LIST(LIST(LIST(CADR TY)(ADD1(THV GCTR)))BX)
03300						(LIST(LIST(CADR TY)(ADD1(THV GCTR)))(LIST(CADR TXX)(NTHV @LCTR 1 THALIST)))
03400						(LIST(LIST(CADR TXX)(NTHV @LCTR 1 THALIST))BX))(THV BT)))))
03500		(GO TR6)
03600	TR2	(SETQ TTL(FINDTL(LIST(CADR TXX)(NTHV @LCTR 1 THALIST))T(THV BT)))
03700		(COND(TTL(THSETQ(THV BT)(CONS(CONS(LIST(LIST(CADR TY)(ADD1(THV GCTR)))(LIST(CADR TXX)(NTHV @LCTR 1 THALIST)))
03800						  TTL)(THV BT))))
03900		     (T(THSETQ(THV BT)(CONS(LIST(LIST(LIST(CADR TY)(ADD1(THV GCTR)))(LIST(CADR TXX)(NTHV @LCTR 1 THALIST))))
04000					    (THV BT)))))
04100		(GO TR6)
04200	TR4	(THSETQ(THV BT)(CONS(LIST(LIST(LIST(CADR TY)(ADD1(THV GCTR)))TXX))(THV BT)))
04250	TR6	(THSETQ(THV TXV)(CDR(THV TXV)) T T)
04300		(RETURN NIL)   ))
04400	EXPR)
04500	
04600	
04700	
04800	
04900	(DEFPROP FINDTL
05000	  (LAMBDA(E FS B)
05100		(COND((NULL B)NIL)
05200		     ((AND FS(EQUAL E(CAAAR B)))(CAR B))
05300		     ((AND(NOT FS)(EQUAL E(CADAAR B))(NOT(NUMBERP(CADR(EXPLODE(CAAAAR B))))))(CAR B))
05400		     (T(FINDTL E FS(CDR B))))   )
05500	EXPR)
05600	
05700	
05800	
05900	
06000	
06100	(DEFPROP SAVAR
06200	   (LAMBDA(THA1)
06300	      (PROG NIL
06350		(COND((AND(NULL SSW) CT)(RPLACA(CAR CT)(CONS(COND((ATOM(CAAR CT))(CAAR CT))(T(CAAAR CT)))(LIST THA2)))))
06400		(COND((AND(THV WF)BTSW(NOT(NUMBERP THA1)))(THSETQ(THV TXV)(MAPCAR(FUNCTION ETHEV)THA1))))   ))
06500	EXPR)
06600	
06605	
06608	(DEFPROP SIMPLE
06611	   (LAMBDA(THA2B)
06614		(COND((NULL SRULES)THA2B) 
06615		     ((NULL THA2B)NIL)
06617		     ((OR(ATOM(CAR THA2B))(EQ @THV(CAAR THA2B)))
06620		      (CONS(CAR THA2B)(SIMPLE(CDR THA2B))))
06623		     (T(CONS(SIMPLE1(CAR THA2B))(SIMPLE(CDR THA2B))))))
06626	EXPR)
06629	
06632	
06635	(DEFPROP SIMPLE1
06638	   (LAMBDA(X)
06641	      (PROG(TX TR)
06644		(SETQ TR SRULES)
06647		(SETQ TX X)
06650	SI3	(SETQ TX(SIMPLE2 TX(CAR TR)))
06651		(SETQ TX(SIMPLE2 TX(CAR TR)))
06653		(SETQ TR(CDR TR))
06656		(COND(TR (GO SI3)))
06659		(RETURN TX)  ))
06662	EXPR)
06665	
06668	
06671	(DEFPROP SIMPLE2
06674	   (LAMBDA(X R)
06677		(COND((OR(ATOM X)(EQ @THV(CAR X))(AND(EQ @#(CAR X))
06678						   (OR(ATOM(CADDR X))(NULL(CDADDR X))))(NULL(CDR X)))X)
06680		     ((AND(NULL(CDDR X))(EQ(CAR X)(CAAR R))(NOT(OR(ATOM(CADR X))(NULL(CADADR X))))(EQ(CAADR X)(CAADAR R)))
06683		      (COND((ATOM(CADR R))(COND((EQ(CAR X) @CAR*)(SIMPLE2(CADADR X)R))((EQ(CAR X) @CDR*)(SIMPLE2(CAR(CDDADR X))R))(T X)))
06686			   (T(CONS(CAADR R)(LIST(SIMPLE2(CADADR X)R))))))
06687		     ((AND(EQ(CAR X)(CAAR R))(EQ @#(CAADR X))(NOT(ATOM(CADDAR(CDR X))))(EQ(CAADDR(CADR X))(CAADAR R)))
06688		      (COND((ATOM(CADR R))(SIMPLE2(CADADR(CDADR X))R))(T(CONS(CAADR R)(LIST(SIMPLE2(CADADR(CDADR X))R))))))
06690		     ((AND(EQUAL(CAR X)(CAAR R))(NOT(ATOM(CADR X)))(CDDAR R)(CDDR X)
06691		          (EQUAL(CAADR X)(CAADAR R))(EQUAL(CAR(CDDADR X))(CADDR X)))
06692		      (CADADR X))
06693		     ((CDDR X) X)
06697		     (T(CONS(CAR X)(LIST(SIMPLE2(CADR X)R))))))
06699	EXPR)
06700	
06800	(DEFPROP ETHEV
06900	   (LAMBDA(ATHA1)
07000		(COND((EQ(CAR ATHA1)@THEV)(THVAL(CADR ATHA1)THALIST))
07100		     (T ATHA1))  )
07200	EXPR)
07300	
07400	
07500	
07600	(DEFPROP NTHV
07700	   (LAMBDA(K N L)
07800		(COND((NULL L)(PRINT @LCTR_NOT_BOUND))
07900		     ((AND(EQ K(CAAR L))(ZEROP N))(CADAR L))
08000		     ((EQ K(CAAR L))(NTHV K(SUB1 N)(CDR L)))
08100		     (T(NTHV K N(CDR L))))  )
08200	EXPR)
08300	
08400	
08500	(DEFPROP COLLECTDB
08600	   (LAMBDA(THY)
08650		(COND((AND (THV ULS)THY(NULL SSW)CT 
08700			   (NOT(SUBSTP(CDAR CT)(CADR THE))))
08750		      (COND((EQ @IF(CADAR CT))
08755	                    (RPLACA CT(CONS(CAAR CT)(APPEND(CONSIFL(CDAR CT))(APPEND(FIXBADDBMATCH(CADR THE)THY)
08756							     (CDRIFL(CDAR CT)))))) )
08757			   (T(RPLACA CT(CONS(CAAR CT)(APPEND(FIXBADDBMATCH(CADR THE)THY)
08758							     (CDAR CT)))))))
08760	  	     ((AND(THV ULS)THY(NULL SSW)CT)
08770		      (COND((EQ @IF(CADAR CT))
08810			    (RPLACA CT(CONS(CAAR CT)(APPEND(CONSIFL(CDAR CT))(UPDATLIT(CDRIFL(CDAR CT))(CADR THE)
08812											  (LIST(THVARSUBST(CADR THE))))))))
08815			   (T(RPLACA CT(CONS(CAAR CT)(UPDATLIT(CDAR CT)(CADR THE)(LIST(THVARSUBST(CADR THE)))))))))))
08850	EXPR)
08950	
08951	
08953	
08956	(DEFPROP CONSIFL
08959	   (LAMBDA(IFL)
08962		(COND((NULL IFL)NIL)((ATOM(CAR IFL))(CONS @IF(CONSIFL(CDR IFL))))
08965		     (T NIL))   )
08968	EXPR)
08971	
08974	
08977	(DEFPROP CDRIFL
08980	   (LAMBDA(IFL)
08983	      	(COND((NULL IFL)NIL)((ATOM(CAR IFL))(CDRIFL(CDR IFL)))
08986		     (T IFL))  )
08989	EXPR)
08992	
08995	
09050	
09053	
09056	(DEFPROP FIXBADDBMATCH
09059	   (LAMBDA(CTHE CTHY)
09062	      (PROG(TTHY)
09065		(SETQ TTHY(FIXDB1(THVARSUBST CTHE)CTHY))
09068		(COND((NULL TTHY)(RETURN NIL)))
09071		(RETURN(LIST(CONS CTHE TTHY)))   ))
09074	EXPR)
09077	
09080	
09083	(DEFPROP FIXDB1
09086	   (LAMBDA(VTHE VTHY)
09089		(COND((NULL VTHY)NIL)
09092		     ((OR(SUBSTP VTHE @THV)(EQUAL VTHE(CAAR VTHY)))VTHY)
09095		     (T(FIXDB1 VTHE(CDR VTHY))))   )
09098	EXPR)
09101	
09104	
10100	
10200	
10300	(DEFPROP UPDATLIT
10400	   (LAMBDA(GHITS X Y)
10500		(COND((NULL GHITS)NIL)
10600		     ((EQUAL X(CAAR GHITS))
10700		      (APPEND(UPDATLIT1(CAAR GHITS)(CDAR GHITS)Y)(CDR GHITS)))
10800		     (T(CONS(CAR GHITS)(UPDATLIT(CDR GHITS)X Y))))  )
10900	EXPR)
11000	
11100	
11200	(DEFPROP UPDATLIT1
11300	   (LAMBDA(GTHE AGHITS Y)
11400		(COND((NULL AGHITS)NIL)
11500		     ((EQUAL Y(CAR AGHITS))
11600		      (LIST(CONS GTHE AGHITS)))
11700		     (T(UPDATLIT1 GTHE(CDR AGHITS)Y)))  )
11800	EXPR)
11900	
12000	
12100	(DEFPROP STEPT
12200	   (LAMBDA NIL
12350		(COND((AND 
12352			(NOT(EQ(CAR THE)@THASSERT))
12355			THVALUE
12357			(NULL SSW)
12360			CT
12365			(CDAR CT)
12370			(OR
12375				(EQUAL THE @(THFAIL))
12380				(AND
12385					(EQ(CAR THE)@THGOAL)
12390					(NOT(EQUAL(THVARSUBST(CADR THE))(CAR THVALUE)))))
12395			(NOT(ATOM(CADADR THTREE)))
12397			(ATOM(CAR(CADADR THTREE))))
12400		      (COND((EQ @IF(CADAR CT))
12450			    (RPLACA CT(CONS(CAAR CT)(APPEND(CONSIFL(CDAR CT))(UPDATLIT(CDRIFL(CDAR CT))(CADADR THTREE)THVALUE)))))
12452			   (T(RPLACA CT(CONS(CAAR CT)(UPDATLIT(CDAR CT)(CADADR THTREE)THVALUE))))))))
12500	EXPR)
12600